package com.crape.topic.bo;

import java.util.List;

import com.crape.common.exceptions.BOException;
import com.crape.common.model.Subject;

public interface ISubjectBO {

	List<Subject> getAllSubjects() throws BOException;

	List<Subject> getAllSubjects(Integer startIndex, Integer pageSize) throws BOException;

	List<Subject> getAllSubjects(Long accountid, Integer startIndex, Integer pageSize) throws BOException;

	Integer isSubjectAttention(Long accountid, Long subjectid) throws BOException;

	Long countAllSubjects() throws BOException;

	List<Subject> listSubjects(Subject subject) throws BOException;

	List<Subject> getHotSubjects() throws BOException;

	Subject getSubjectById(Long id) throws BOException;

	void addSubject(Subject subject) throws BOException;

	void updateSubject(Subject subject) throws BOException;

	void deleteSubjectById(Long id) throws BOException;

	Long countAllAttentions(Long accountid) throws BOException;

	List<Subject> getTop8Attentions(Long accountid) throws BOException;

	List<Subject> getSubjectAttentionsByAccountid(Long accountid, Integer startIndex, Integer pageSize) throws BOException;

	Long countSubjectAttentionsByAccountid(Long accountid) throws BOException;

	void addSubjectVisitor(Long visitorid, Long subjectid) throws BOException;
}
